package org.finesys.common.hazelcast.core.base;

import java.util.Collection;
import java.util.Map;
import java.util.Set;

public interface DistributedMap<K, V> {
    /**
     * 添加键值对
     *
     * @param k key
     * @param v value
     */
    void put(K k, V v);


    /**
     * 获取指定key对应的值
     *
     * @param k key
     * @return value
     */
    V get(K k);

    /**
     * 替换值
     *
     * @param k key
     * @param v value
     * @return
     */
    V replace(K k, V v);

    /**
     * 根据指定Key删除
     */
    void delete(K k);

    /**
     * 所有的Key集合信息
     */
    Collection<K> keys();

    /**
     * 所有的value集合信息
     */
    Collection<V> values();

    /**
     * 返回此映射中包含的映射的不可变集克隆
     *
     * @return keys
     */
    Set<Map.Entry<K, V>> entrySet();

    /**
     * 清空集合
     */
    void clear();
}
